# 2.8.2  Regular Expression General Requirement
2�4�bb*�abbbc�
2�2�bb*�ababbbc�
7�9�A#*::�A:A#:qA::qA#::qA##::q�
1�5�A#*::�A##::A#::qA::qA#:q�
# 2.8.3.1.2  BRE Special Characters
# GA108
2�2�\.�a.c�
2�2�\[�a[c�
2�2�\\�a\c�
2�2�\*�a*c�
2�2�\^�a^c�
2�2�\$�a$c�
7�11�X\*Y\*8�Y*8X*8X*Y*8�
# GA109
2�2�[.]�a.c�
2�2�[[]�a[c�
-1�-1�[[]�ac�
2�2�[\]�a\c�
1�1�[\a]�abc�
2�2�[\.]�a\.c�
2�2�[\.]�a.\c�
2�2�[*]�a*c�
2�2�[$]�a$c�
2�2�[X*Y8]�7*8YX�
# GA110
2�2�*�a*c�
3�4�*a�*b*a*c�
1�5�**9=�***9=9�
# GA111
1�1�^*�*bc�
-1�-1�^*�a*c�
-1�-1�^*�^*ab�
1�5�^**9=�***9=�
-1�-1�^*5<*9�5<9*5<*9�
# GA112
2�3�\(*b\)�a*b�
-1�-1�\(*b\)�ac�
1�6�A\(**9\)=�A***9=79�
# GA113(1)
1�3�\(^*ab\)�*ab�
-1�-1�\(^*ab\)�^*ab�
-1�-1�\(^*b\)�a*b�
-1�-1�\(^*b\)�^*b�
### GA113(2)			GNU regex implements GA113(1)
##-1�-1�\(^*ab\)�*ab�
##-1�-1�\(^*ab\)�^*ab�
##1�1�\(^*b\)�b�
##1�3�\(^*b\)�^^b�
# GA114
1�3�a^b�a^b�
1�3�a\^b�a^b�
1�1�^^�^bc�
2�2�\^�a^c�
1�1�[c^b]�^abc�
1�1�[\^ab]�^ab�
2�2�[\^ab]�c\d�
-1�-1�[^^]�^�
1�3�\(a^b\)�a^b�
1�3�\(a\^b\)�a^b�
2�2�\(\^\)�a^b�
# GA115
3�3�$$�ab$�
-1�-1�$$�$ab�
2�3�$c�a$c�
2�2�[$]�a$c�
1�2�\$a�$a�
3�3�\$$�ab$�
2�6�A\([34]$[34]\)B�XA4$3BY�
# 2.8.3.1.3  Periods in BREs
# GA116
1�1�.�abc�
-1�-1�.ab�abc�
1�3�ab.�abc�
1�3�a.b�a,b�
-1�-1�.......�PqRs6�
1�7�.......�PqRs6T8�
# 2.8.3.2  RE Bracket Expression
# GA118
2�2�[abc]�xbyz�
-1�-1�[abc]�xyz�
2�2�[abc]�xbay�
# GA119
2�2�[^a]�abc�
4�4�[^]cd]�cd]ef�
2�2�[^abc]�axyz�
-1�-1�[^abc]�abc�
3�3�[^[.a.]b]�abc�
3�3�[^[=a=]b]�abc�
2�2�[^-ac]�abcde-�
2�2�[^ac-]�abcde-�
3�3�[^a-b]�abcde�
3�3�[^a-bd-e]�dec�
2�2�[^---]�-ab�
16�16�[^a-zA-Z0-9]�pqrstVWXYZ23579#�
# GA120(1)
3�3�[]a]�cd]ef�
1�1�[]-a]�a_b�
3�3�[][.-.]-0]�ab0-]�
1�1�[]^a-z]�string�
# GA120(2)
4�4�[^]cd]�cd]ef�
0�0�[^]]*�]]]]]]]]X�
0�0�[^]]*�]]]]]]]]�
9�9�[^]]\{1,\}�]]]]]]]]X�
-1�-1�[^]]\{1,\}�]]]]]]]]�
# GA120(3)
3�3�[c[.].]d]�ab]cd�
2�8�[a-z]*[[.].]][A-Z]*�Abcd]DEFg�
# GA121
2�2�[[.a.]b]�Abc�
1�1�[[.a.]b]�aBc�
-1�-1�[[.a.]b]�ABc�
3�3�[^[.a.]b]�abc�
3�3�[][.-.]-0]�ab0-]�
3�3�[A-[.].]c]�ab]!�
# GA122
-2�-2�[[.ch.]]�abc�
-2�-2�[[.ab.][.CD.][.EF.]]�yZabCDEFQ9�
# GA125
2�2�[[=a=]b]�Abc�
1�1�[[=a=]b]�aBc�
-1�-1�[[=a=]b]�ABc�
3�3�[^[=a=]b]�abc�
# GA126
#W the expected result for [[:alnum:]]* is 2-7 which is wrong
0�0�[[:alnum:]]*� aB28gH�
2�7�[[:alnum:]][[:alnum:]]*� aB28gH�
#W the expected result for [^[:alnum:]]* is 2-5 which is wrong
0�0�[^[:alnum:]]*�2 	,a�
2�5�[^[:alnum:]][^[:alnum:]]*�2 	,a�
#W the expected result for [[:alpha:]]* is 2-5 which is wrong
0�0�[[:alpha:]]*� aBgH2�
2�5�[[:alpha:]][[:alpha:]]*� aBgH2�
1�6�[^[:alpha:]]*�2 	8,a�
1�2�[[:blank:]]*� 	�
1�8�[^[:blank:]]*�aB28gH, �
1�2�[[:cntrl:]]*�	 �
1�8�[^[:cntrl:]]*�aB2 8gh,�
#W the expected result for [[:digit:]]* is 2-3 which is wrong
0�0�[[:digit:]]*�a28�
2�3�[[:digit:]][[:digit:]]*�a28�
1�8�[^[:digit:]]*�aB 	gH,�
1�7�[[:graph:]]*�aB28gH, �
1�3�[^[:graph:]]*� 	,�
1�2�[[:lower:]]*�agB�
1�8�[^[:lower:]]*�B2 	8H,a�
1�8�[[:print:]]*�aB2 8gH,	�
1�2�[^[:print:]]*�	 �
#W the expected result for [[:punct:]]* is 2-2 which is wrong
0�0�[[:punct:]]*�a,2�
2�3�[[:punct:]][[:punct:]]*�a,,2�
1�9�[^[:punct:]]*�aB2 	8gH�
1�3�[[:space:]]*� 	�
#W the expected result for [^[:space:]]* is 2-9 which is wrong
0�0�[^[:space:]]*� aB28gH,	�
2�9�[^[:space:]][^[:space:]]*� aB28gH,	�
#W the expected result for [[:upper:]]* is 2-3 which is wrong
0�0�[[:upper:]]*�aBH2�
2�3�[[:upper:]][[:upper:]]*�aBH2�
1�8�[^[:upper:]]*�a2 	8g,B�
#W the expected result for [[:xdigit:]]* is 2-5 which is wrong
0�0�[[:xdigit:]]*�gaB28h�
2�5�[[:xdigit:]][[:xdigit:]]*�gaB28h�
#W the expected result for [^[:xdigit:]]* is 2-7 which is wrong
2�7�[^[:xdigit:]][^[:xdigit:]]*�a 	gH,2�
# GA127
-2�-2�[b-a]�abc�
1�1�[a-c]�bbccde�
2�2�[a-b]�-bc�
3�3�[a-z0-9]�AB0�
3�3�[^a-b]�abcde�
3�3�[^a-bd-e]�dec�
1�1�[]-a]�a_b�
2�2�[+--]�a,b�
2�2�[--/]�a.b�
2�2�[^---]�-ab�
3�3�[][.-.]-0]�ab0-]�
3�3�[A-[.].]c]�ab]!�
2�6�bc[d-w]xy�abchxyz�
# GA129
1�1�[a-cd-f]�dbccde�
-1�-1�[a-ce-f]�dBCCdE�
2�4�b[n-zA-M]Y�absY9Z�
2�4�b[n-zA-M]Y�abGY9Z�
# GA130
3�3�[-xy]�ac-�
2�4�c[-xy]D�ac-D+�
2�2�[--/]�a.b�
2�4�c[--/]D�ac.D+b�
2�2�[^-ac]�abcde-�
1�3�a[^-ac]c�abcde-�
3�3�[xy-]�zc-�
2�4�c[xy-]7�zc-786�
2�2�[^ac-]�abcde-�
2�4�a[^ac-]c�5abcde-�
2�2�[+--]�a,b�
2�4�a[+--]B�Xa,By�
2�2�[^---]�-ab�
4�6�X[^---]Y�X-YXaYXbY�
# 2.8.3.3  BREs Matching Multiple Characters
# GA131
3�4�cd�abcdeabcde�
1�2�ag*b�abcde�
-1�-1�[a-c][e-f]�abcdef�
3�4�[a-c][e-f]�acbedf�
4�8�abc*XYZ�890abXYZ#*�
4�9�abc*XYZ�890abcXYZ#*�
4�15�abc*XYZ�890abcccccccXYZ#*�
-1�-1�abc*XYZ�890abc*XYZ#*�
# GA132
2�4�\(*bc\)�a*bc�
1�2�\(ab\)�abcde�
1�10�\(a\(b\(c\(d\(e\(f\(g\)h\(i\(j\)\)\)\)\)\)\)\)�abcdefghijk�
3�8�43\(2\(6\)*0\)AB�654320ABCD�
3�9�43\(2\(7\)*0\)AB�6543270ABCD�
3�12�43\(2\(7\)*0\)AB�6543277770ABCD�
# GA133
1�10�\(a\(b\(c\(d\(e\(f\(g\)h\(i\(j\)\)\)\)\)\)\)\)�abcdefghijk�
-1�-1�\(a\(b\(c\(d\(e\(f\(g\)h\(i\(k\)\)\)\)\)\)\)\)�abcdefghijk�
# GA134
2�4�\(bb*\)�abbbc�
2�2�\(bb*\)�ababbbc�
1�6�a\(.*b\)�ababbbc�
1�2�a\(b*\)�ababbbc�
1�20�a\(.*b\)c�axcaxbbbcsxbbbbbbbbc�
# GA135
1�7�\(a\(b\(c\(d\(e\)\)\)\)\)\4�abcdededede�
#W POSIX does not really specify whether a\(b\)*c\1 matches acb.
#W back references are supposed to expand to the last match, but what
#W if there never was a match as in this case?
-1�-1�a\(b\)*c\1�acb�
1�11�\(a\(b\(c\(d\(e\(f\(g\)h\(i\(j\)\)\)\)\)\)\)\)\9�abcdefghijjk�
# GA136
#W These two tests have the same problem as the test in GA135.  No match
#W of a subexpression, why should the back reference be usable?
#W 1 2 a\(b\)*c\1 acb
#W 4 7 a\(b\(c\(d\(f\)*\)\)\)\4�xYzabcdePQRST
-1�-1�a\(b\)*c\1�acb�
-1�-1�a\(b\(c\(d\(f\)*\)\)\)\4�xYzabcdePQRST�
# GA137
-2�-2�\(a\(b\)\)\3�foo�
-2�-2�\(a\(b\)\)\(a\(b\)\)\5�foo�
# GA138
1�2�ag*b�abcde�
1�10�a.*b�abababvbabc�
2�5�b*c�abbbcdeabbbbbbcde�
2�5�bbb*c�abbbcdeabbbbbbcde�
1�5�a\(b\)*c\1�abbcbbb�
-1�-1�a\(b\)*c\1�abbdbd�
0�0�\([a-c]*\)\1�abcacdef�
1�6�\([a-c]*\)\1�abcabcabcd�
1�2�a^*b�ab�
1�5�a^*b�a^^^b�
# GA139
1�2�a\{2\}�aaaa�
1�7�\([a-c]*\)\{0,\}�aabcaab�
1�2�\(a\)\1\{1,2\}�aabc�
1�3�\(a\)\1\{1,2\}�aaaabc�
#W the expression \(\(a\)\1\)\{1,2\} is ill-formed, using \2
1�4�\(\(a\)\2\)\{1,2\}�aaaabc�
# GA140
1�2�a\{2\}�aaaa�
-1�-1�a\{2\}�abcd�
0�0�a\{0\}�aaaa�
1�64�a\{64\}�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�
# GA141
1�7�\([a-c]*\)\{0,\}�aabcaab�
#W the expected result for \([a-c]*\)\{2,\} is failure which isn't correct
1�3�\([a-c]*\)\{2,\}�abcdefg�
1�3�\([a-c]*\)\{1,\}�abcdefg�
-1�-1�a\{64,\}�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�
# GA142
1�3�a\{2,3\}�aaaa�
-1�-1�a\{2,3\}�abcd�
0�0�\([a-c]*\)\{0,0\}�foo�
1�63�a\{1,63\}�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�
# 2.8.3.4  BRE Precedence
# GA143
#W There are numerous bugs in the original version.
2�19�\^\[[[.].]]\\(\\1\\)\*\\{1,2\\}\$�a^[]\(\1\)*\{1,2\}$b�
1�6�[[=*=]][[=\=]][[=]=]][[===]][[...]][[:punct:]]�*\]=.;�
1�6�[$\(*\)^]*�$\()*^�
1�1�[\1]�1�
1�1�[\{1,2\}]�{�
#W the expected result for \(*\)*\1* is 2-2 which isn't correct
0�0�\(*\)*\1*�a*b*11�
2�3�\(*\)*\1*b�a*b*11�
#W the expected result for \(a\(b\{1,2\}\)\{1,2\}\) is 1-5 which isn't correct
1�3�\(a\(b\{1,2\}\)\{1,2\}\)�abbab�
1�5�\(a\(b\{1,2\}\)\)\{1,2\}�abbab�
1�1�^\(^\(^a$\)$\)$�a�
1�2�\(a\)\1$�aa�
1�3�ab*�abb�
1�4�ab\{2,4\}�abbbc�
# 2.8.3.5  BRE Expression Anchoring
# GA144
1�1�^a�abc�
-1�-1�^b�abc�
-1�-1�^[a-zA-Z]�99Nine�
1�4�^[a-zA-Z]*�Nine99�
# GA145(1)
1�2�\(^a\)\1�aabc�
-1�-1�\(^a\)\1�^a^abc�
1�2�\(^^a\)�^a�
1�1�\(^^\)�^^�
1�3�\(^abc\)�abcdef�
-1�-1�\(^def\)�abcdef�
### GA145(2)			GNU regex implements GA145(1)
##-1�-1�\(^a\)\1�aabc�
##1�4�\(^a\)\1�^a^abc�
##-1�-1�\(^^a\)�^a�
##1�2�\(^^\)�^^�
# GA146
3�3�a$�cba�
-1�-1�a$�abc�
5�7�[a-z]*$�99ZZxyz�
#W the expected result for [a-z]*$ is failure which isn't correct
10�9�[a-z]*$�99ZZxyz99�
3�3�$$�ab$�
-1�-1�$$�$ab�
3�3�\$$�ab$�
# GA147(1)
-1�-1�\(a$\)\1�bcaa�
-1�-1�\(a$\)\1�ba$�
-1�-1�\(ab$\)�ab$�
1�2�\(ab$\)�ab�
4�6�\(def$\)�abcdef�
-1�-1�\(abc$\)�abcdef�
### GA147(2)			GNU regex implements GA147(1)
##-1�-1�\(a$\)\1�bcaa�
##2�5�\(a$\)\1�ba$a$�
##-1�-1�\(ab$\)�ab�
##1�3�\(ab$\)�ab$�
# GA148
0�0�^$��
1�3�^abc$�abc�
-1�-1�^xyz$�^xyz^�
-1�-1�^234$�^234$�
1�9�^[a-zA-Z0-9]*$�2aA3bB9zZ�
-1�-1�^[a-z0-9]*$�2aA3b#B9zZ�
